编译RT |
您所在的位置:网站首页 › linux实时性测试 centos › 编译RT |
当事件发生时,系统响应该事件的时间即为延时。 延时在不同的上下文有不同的含义,而cyclictest所测得的延时是中断延时加调度延时,如下图。中断延时(interrupt latency),即中断发生到进入中断处理程序ISR的延时。调度延时(scheduling latency),即当任务被唤醒到任务真正获得CPU使用权中间的延时。 cyclictest原理: 通过启动一个master的普通进程,然后master进程再启动指定数量指定优先级的实时进程,实时进程会设置一个timer周期性的唤醒自己(从timer溢出触发中断并进入ISR调用wake_up_process()唤醒实时进程,到进程真正能被运行,这中间的时间即我们需要测量的延时)。实时进程得到运行后会再次获取当前系统时间,减去睡眠时间时的时间以及睡眠的时间即可得到延时时间,并通过共享内存将该值传递给master进程进行统计,如此周而复始,最终由master进程将结果输出。 注意:当造成延时的事件发生在timer溢出之前,那么这样的延时将不会被捕捉到,所以我们需要足够久的运行cyclictest才能更大概率的抓取全面的延时数据。 运行cyclictest前,我们有几点需要注意的地方。首先是短时间的运行cyclictest得出的结果是无意义的,再就是测试系统上没有合适负载的情况下运行cyslictest所得到的延时统计也是无意义的。所以我们最好在待测系统上模拟出负载并运行cyclictest大于24小时统计出延时。 1,下载源码 git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git git checkout origin/stable/v1.02,交叉编译 修改Makefile中的编译器 CC = arm-linux-gnueabihf-gcc AR = arm-linux-gnueabihf-ar执行make 如果报错: src/cyclictest/rt_numa.h:29:18: fatal error: numa.h: 没有那个文件或目录 1)安装apt-file 来找到依赖库 apt-get install apt-file apt-file update #更新源2)寻找 numa.h apt-file install numa.h3) 安装相应的库 apt-get install libnuma-dev3,运行cyclictest程序进行实时性测试: cyclictest -t 5 -p 80 -n4,cyclictest运行结果详解 T: 0 序号为0的线程 P: 0 线程优先级为0 C: 9397 计数器。线程的时间间隔每达到一次,计数器加1 I: 1000 时间间隔为1000微秒(us) Min: 最小延时(us) Act: 最近一次的延时(us) Avg:平均延时(us) Max: 最大延时(us)参考链接:实时性测试:cyclictest详解 - 知乎 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |